STS中临时授权访问OSS资源时出现“You are not authorized to do this action. You should be authorized by RAM“报错 您所在的位置:网站首页 hoekijzers action STS中临时授权访问OSS资源时出现“You are not authorized to do this action. You should be authorized by RAM“报错

STS中临时授权访问OSS资源时出现“You are not authorized to do this action. You should be authorized by RAM“报错

#STS中临时授权访问OSS资源时出现“You are not authorized to do this action. You should be authorized by RAM“报错| 来源: 网络整理| 查看: 265

问题描述

通过STS服务给其他用户颁发一个临时访问凭证,希望该用户可使用临时访问凭证在规定时间内访问您的OSS资源。在使用代码实现授权时出现以下报错:

Code: NoPermission Error message: You are not authorized to do this action. You should be authorized by RAM.问题原因

STS中临时授权访问OSS资源时出现报错的原因如下:

原因一:代码中使用了阿里云账号的AccessKey ID和AccessKeySecret,而非RAM用户的。

原因二:没有为RAM用户添加AliyunSTSAssumeRoleAccess权限策略。

原因三:代码中使用的RoleARN参数对应的角色不是用户角色,而是服务角色。

解决方案重要

如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

原因一的解决方法

在代码中使用RAM用户的AccessKey和AccessKeySecret。关于RAM用户如何创建AccessKey,请参见创建AccessKey。

原因二的解决方法

请为该RAM用户添加系统策略(AliyunSTSAssumeRoleAccess)或自定义策略,具体操作如下:

方法一:添加系统策略

为RAM用户添加AliyunSTSAssumeRoleAccess策略。具体操作,请参见使用STS临时访问凭证访问OSS。

登录RAM控制台,选择人员管理>用户,然后单击指定RAM用户名。在权限管理页签,确认该RAM用户已被授予AliyunSTSAssumeRoleAccess系统策略。

方法二:添加自定义策略

登录RAM控制台。

在左侧导航栏,选择身份管理>角色,单击目标RAM角色名称。

基本信息区域,查看RAM角色ARN。

通过创建自定义策略指定RAM用户具体可以扮演的RAM角色。策略示例如下:

{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram:*:[$Account_ID]:role/[$Role_Name]" } ], "Version": "1" }说明

Resource为角色ARN。

[$Account_ID]为阿里云账号ID。

[$Role_Name]为RAM角色名称。

将自定义策略授权给RAM用户后,即可指定具体可以扮演的RAM角色。关于如何为RAM用户授权,请参见为RAM用户授权。

原因三的解决方法

请确保创建RAM角色时选择的类型为阿里云账号。关于如何创建RAM角色,请参见创建可信实体为阿里云账号的RAM角色。

image说明

阿里云账号为用户角色,阿里云服务为服务角色。

相关文档

STS临时授权OSS操作权限报“Access denied by authorizer's policy”错

使用STS访问OSS资源时常见的错误码及错误原因

RAM角色和STS token常见问题

适用于

对象存储OSS

访问控制



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有